Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > 日本語 - Japanese > XPages における JSF ライフサイクル - コントロールプロパティ評価のタイミング
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

Community articleXPages における JSF ライフサイクル - コントロールプロパティ評価のタイミング
Added by ~Yoshi Froluchekettu | Edited by ~Yoshi Froluchekettu on November 10, 2011 | Version 12
expanded Abstract
collapsed Abstract
XPages のコントロールのプロパティが評価されるタイミングを、JSF のライフサイクルと関連付けてまとめます。
Tags: XPages, JSF, イベント, プロパティ, ライフサイクル
ShowTable of Contents
HideTable of Contents
  • 1 入力系コントロールの場合
  • 2 繰り返しコントロールの場合
一つ前の記事では、XPages における JSF のライフサイクルと、XPage やカスタムコントロールのページイベントとの関係をまとめました。

XPages における JSF ライフサイクル - ページイベント処理のタイミングexternal link

この記事では、コントロールがサポートするさまざまなプロパティがライフサイクル中でいつ評価されるのか
(JavaScript ロジックが割り振られていた場合には、そのロジックが実行される)、イベントがいつ実行されるのかをまとめます。

入力系コントロールの場合


次の簡単なXPageを使って評価タイミングを見ていきます。



パネルが2つ配置され、1つめのパネル内に、計算結果フィールドとコンボボックスが配置されています。
タイミングを確認するのは、次のプロパティとイベント(太字)です。
  • XPage
    beforePageLoad/afterPageLoad/afterRestoreView/beforeRenderResponse/afterRenderResponse
  • 計算結果フィールド
    rendered/value
  • コンボボックス
    rendered/readonly/selectItems.value/onchange
注:
value はコントロールにバインドする値を指定するプロパティです。
rendered はコントロールを表示するかどうかを指定するプロパティです。
readonlyはコントロールを入力可能か表示専用で表示するかを指定するプロパティです。
また、コンボボックスの選択項目は、コンボボックス自身のプロパティではなく、その子要素である selectItems の value プロパティとして指定します。
  • ケース1:新規ページアクセスの場合
    評価順序1
RenderResponse フェーズで、コントロールの各種プロパティが評価されていることが分かります。
コンポーネントツリーの処理上、プロパティの評価は1回のリクエストに対して必ずしも1回ではない点に注意してください。
このケースでは、コンボボックスのプロパティがそれぞれ2回ずつ評価されています。
  • ケース2:コンボボックスで選択を行った場合 (ページ全体を更新)
    評価順序2
このケースでは、計算結果フィールドとコンボボックスが部分更新の対象となっているため、Render Response フェーズでの評価は、
ケース1の場合と同様です。
加えて、Apply Request Values/Process Validation/Update Model Values の各フェーズにおいても、
rendered 等のプロパティが評価されています。

onchange イベントは、Invoke Application フェーズで実行されています。
  • ケース3:コンボボックスで選択を行った場合 (パネル2を部分更新する場合)
    評価順序3
このケースでは、計算結果フィールドとコンボボックスが部分更新の対象となっていないため、
Render Response フェーズでのプロパティの評価が行われなくなっています。
それ以外は、ケース2の場合と同様です。
  • ケース4:新規ページアクセスの場合 (「ページの読み込み時に計算」を設定)
    評価順序1
プロパティなどに割り振られた JavaScript には、そのロジックをいつ実行するかを指定するオプションがあります。



デフォルトでは「動的に計算」が選択されているのですが、これを「ページの読み込み時に計算」に変更した場合の動作です。
このオプションを選択すると、プロパティの評価が Render Response フェーズから、Restore View フェーズに移動していることがわかります。
  • ケース5:コンボボックスで選択を行った場合 (ページ全体を更新、「ページの読み込み時に計算」を設定)
    評価順序1
  • プロパティの評価は、新規ページロード時の Restore View フェーズで行ってしまっているので、このケースでは、
    一切の評価が行われていません。onchange イベントの処理が行われているだけです。

    このように、「ページの読み込み時に計算」オプションを指定することで、プロパティの評価回数を最低限にすることが出来ます。
    但し、onchange などのイベント処理により評価値を変更することが出来ません。
    そのため、値がページ読み込み時に確定してしまうことが分かっているプロパティにのみ使用してください。




    繰り返しコントロールの場合


    expanded Attachments (5)
    collapsed Attachments (5)
    File TypeSizeFile NameCreated OnDelete file
    image/x-png 6 KB list1.png 11/10/11, 4:35 AM
    image/x-png 8 KB list2.png 11/10/11, 4:43 AM
    image/x-png 6 KB list3.png 11/10/11, 7:17 AM
    image/x-png 5 KB list4.png 11/10/11, 7:52 AM
    image/x-png 4 KB list5.png 11/10/11, 7:53 AM
    expanded Versions (28)
    collapsed Versions (28)
    Version Comparison     
    VersionDateChanged by              Summary of changes
    28May 7, 2013, 1:10:05 AM~Justin Elwemarynds  
    27May 7, 2013, 1:09:07 AM~Rebecca Minfreevitchobu  
    26Nov 16, 2011, 2:28:10 AM~Yoshi Froluchekettu  Minor Change
    25Nov 16, 2011, 1:40:32 AM~Yoshi Froluchekettu  Minor Change
    24Nov 10, 2011, 9:48:44 AM~Yoshi Froluchekettu  
    22Nov 10, 2011, 9:46:03 AM~Yoshi Froluchekettu  
    21Nov 10, 2011, 9:44:28 AM~Yoshi Froluchekettu  
    20Nov 10, 2011, 9:42:45 AM~Yoshi Froluchekettu  
    19Nov 10, 2011, 9:31:04 AM~Yoshi Froluchekettu  
    18Nov 10, 2011, 9:29:11 AM~Yoshi Froluchekettu  
    17Nov 10, 2011, 9:26:30 AM~Yoshi Froluchekettu  
    16Nov 10, 2011, 9:25:22 AM~Yoshi Froluchekettu  
    15Nov 10, 2011, 8:36:37 AM~Yoshi Froluchekettu  
    14Nov 10, 2011, 8:10:04 AM~Yoshi Froluchekettu  
    13Nov 10, 2011, 8:07:18 AM~Yoshi Froluchekettu  
    This version (12)Nov 10, 2011, 8:06:32 AM~Yoshi Froluchekettu  
    11Nov 10, 2011, 7:42:06 AM~Yoshi Froluchekettu  
    10Nov 10, 2011, 7:41:20 AM~Yoshi Froluchekettu  
    9Nov 10, 2011, 7:40:16 AM~Yoshi Froluchekettu  
    8Nov 10, 2011, 7:37:19 AM~Yoshi Froluchekettu  
    7Nov 10, 2011, 7:35:24 AM~Yoshi Froluchekettu  
    6Nov 10, 2011, 7:19:36 AM~Yoshi Froluchekettu  
    5Nov 10, 2011, 5:33:00 AM~Yoshi Froluchekettu  
    4Nov 10, 2011, 5:26:33 AM~Yoshi Froluchekettu  
    3Nov 10, 2011, 5:25:54 AM~Yoshi Froluchekettu  
    2Nov 10, 2011, 5:25:43 AM~Yoshi Froluchekettu  
    1Nov 10, 2011, 5:17:54 AM~Yoshi Froluchekettu  
    1Nov 10, 2011, 5:24:27 AM~Yoshi Froluchekettu  
    Copy and paste this wiki markup to link to this article from another article in this wiki.
    Go ElsewhereStay ConnectedAbout
    • HCL Software
    • HCL Digital Solutions community
    • HCL Software support
    • BlogsDigital Solutions blog
    • Community LinkHCL Software forums and blogs
    • About HCL
    • Privacy
    • Accessibility